package com.dianjing.dianqun.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.dianjing.dianqun.common.base.CrudService;
import com.dianjing.dianqun.dao.ContentLikeMapper;
import com.dianjing.dianqun.dao.ContentMapper;
import com.dianjing.dianqun.model.Content;

/**
 * @date : 2017年10月13日
 * 
 * @author: baoyongtao
 * 
 * @see :
 * 
 */
@Service
@Transactional
public class ContentService extends CrudService<ContentMapper, Content> {

	@Autowired
	private ContentMapper contentMapper;
	
	@Autowired
	private ContentLikeMapper contentLikeMapper;

	public List<Content> selectAllContent() {
		return contentMapper.selectAllContent();
	}

	/**
	 * 根据 站点id查询所有文章
	 * 
	 * @param id
	 *            siteID
	 * @return
	 */
	public List<Content> selectContentBySiteId(Integer id) {
		return contentMapper.selectContentBySiteId(id);
	}

	/**
	 * 根据 user的类型查询文章数量
	 * 
	 * @param user
	 *            id siteID
	 * @return
	 */
	public List<Content> selectCountByType(Integer userId, Integer type) {
		return contentMapper.selectContentByType(userId, type);
	}

	/**
	 * 根据channelId查询 对于的文章
	 * 
	 * @param siteId
	 * @param channelId
	 * @return
	 */
	public List<Content> siteChannelContent(Integer channelId) {
		return contentMapper.siteChannelContent(channelId);
	}

	/**
	 * 根据用户id查询最新的offset篇文章
	 * 
	 * @param userId
	 * @return
	 */
	public List<Content> selectContentByLike(Integer userId,Integer pageNum, Integer offset) {
		return contentMapper.selectContentByLike(userId,pageNum,offset);
	}

	/**
	 * 根据用户id查询推荐顶置的offset篇文章
	 * 
	 * @param userId
	 * @return
	 */
	public List<Content> selectContentRecommend(Integer userId, Integer offset) {
		return contentMapper.selectContentRecommend(userId, offset);
	}

	/**
	 * 查询用户文章总数
	 * 
	 * @param userId
	 * @return
	 */
	public Integer selectCountByUserId(Integer userId) {
		return contentMapper.selectCountByUserId(userId);
	}

	/**
	 * 根据用户id查询
	 * 
	 * @param id
	 * @param parame
	 * @return
	 */
	public List<Content> selectContentByUserId(Integer userId) {
		return contentMapper.selectContentByUserId(userId);
	}

	/**
	 * 根据用户id和type的类型所关注人的 文章 的数量
	 * @param userId
	 * @param type
	 * @return
	 */
	public Long selectContentByFollowCount(Integer userId, Integer type,String lastTime) {
		return contentMapper.selectContentByFollowCount(userId,type,lastTime);
	}
	/**
	 * 根据用户id和type的类型所关注人的文章
	 * @param userId
	 * @param type
	 * @return
	 */
	public List<Content> selectContentByFollow(Integer userId, Integer type,String lastTime) {
		return contentMapper.selectContentByFollow(userId,type,lastTime);
	}

	/**
	 * 根据关键字搜索文章标题  
	 * @param keyword
	 * @return
	 */
	public List<Content> selectContentByKeyowrd(String keyword) {
		return contentMapper.selectContentByKeyowrd(keyword);
	}

	/**
	 * 根据 站点id和关键字查询 文章列
	 * @param siteId
	 * @param keyword
	 * @return
	 */
	public List<Content> selectContentBySiteAndKeyWord(Integer siteId, String keyword) {
		return contentMapper.selectContentBySiteAndKeyWord(siteId,keyword);
	}
}
